package chapter2;

public class GetMax {
    //求数组的最大值
    public static int getMax(int[] arr){
        return process(arr,0,arr.length-1);
    }

    //arr[L....R]上的最大值
    public static int process(int[] arr,int L,int R){
        if (L==R){
            return arr[L];
        }
        int mid = L + ((R-L)>>1);//(L+R)/2会溢出
        int leftMax = process(arr,L,mid);
        int rightMax = process(arr,mid+1,R);
        return Math.max(leftMax,rightMax);
    }

    public static void main(String[] args) {
        int[] arr = {27,5,3,5};
        System.out.println(getMax(arr));
    }
}
